package plug.GapTextPlugin;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import view.Fenetre;

@SuppressWarnings("serial")
public class GapTextLine extends JPanel implements ActionListener {
	
	private String text;
	private JButton bChange, bRemove;
	
	public GapTextLine(String text) {
		
		// Initialisation des variables
		this.text = text;
		String subText = "";
		
		// Ajout de la transparence
		this.setOpaque(false);
		
		// Creation des conteneurs
		bChange = new JButton("Modifier");
		bRemove = new JButton("Supprimer");

		for (int i=0; i<text.length(); i++) {

			if (text.charAt(i) != '[') { // Si on ne trouve pas de balise

				subText += text.charAt(i);

			}
			else { // Si on trouve une balise

				// Ajout et reinitialisation du morceau de texte
				this.add(new JLabel(subText));
				subText = "";

				// Creation et ajout d'une zone de saisie
				this.add(new JTextField(10));

				i++;
				String t = "";

				while (text.charAt(i) != ']') { // Tant qu'on n'a pas trouve de balise fermante

					t += text.charAt(i);
					i++;

				}

			}

		}
		
		// Ajout des conteneurs
		this.add(new JLabel(subText));
		this.add(bChange);
		this.add(bRemove);
		
		// Ajout des ecouteurs aux boutons
		bChange.addActionListener(this);
		bRemove.addActionListener(this);
		
	}

	@Override
	public void actionPerformed(ActionEvent event) {
		
		if (event.getSource() == bChange) {
			
			GapTextPanelProf.list.remove(text);
			GapTextPanelProf.tText.setText(text);
			GapTextPanelProf.pShow.remove(this);
			Fenetre.fen.validate();
			
		}
		else if (event.getSource() == bRemove) {
			
			GapTextPanelProf.list.remove(text);
			GapTextPanelProf.pShow.remove(this);
			Fenetre.fen.validate();
			
		}
		
	}
	
}
